﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmUsuario : frmABM
    {
        List<Usuario> usuarios;
        DataTable dt;

        public frmUsuario()
        {
            base.escribeLabels("Usuario");
            base.CargarGrilla();
            base.txtPais.Focus();
        }

        public override void CargarGrilla()
        {
            dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Usuario", typeof(string));
            dt.Columns.Add("Tipo de Usuario", typeof(string));
            dt.Columns.Add("Apellido", typeof(string));
            dt.Columns.Add("Nombre", typeof(string));
            dt.Columns.Add("Email", typeof(string));
            dt.Columns.Add("Habilitado", typeof(bool));
            dt.Columns.Add("Departamentos", typeof(string));
            usuarios = Usuarios.buscarUsuarios();

            foreach (Usuario u in usuarios)
                dt.Rows.Add(u.id,u,u.tipo,u.apellido,u.nombre, u.email, u.habilitado, u.mostrarDepartamentos());

            base.Grilla.DataSource = dt;
            base.Grilla.Columns[0].Visible = false;
        }

        public override void busqueda()
        {
            dt.Clear();

            foreach (Usuario u in usuarios)
            {

                if (u.descripcion.ToUpper().StartsWith(base.txtPais.Text.ToUpper()))
                    dt.Rows.Add(u.id, u, u.apellido, u.nombre, u.email, u.habilitado, u.mostrarDepartamentos());
            }
        }

        public override void agregar()
        {
            frmUsuarioNuevo frm = new frmUsuarioNuevo();
            if (frm.ShowDialog() == DialogResult.OK) CargarGrilla();
            frm.Dispose();
            CargarGrilla();
        }

        public override void eliminar()
        {
            if (base.Grilla.SelectedRows.Count == 1)
            {
                if (MessageBox.Show("¿Desea dar de baja el usuario seleccionado?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    Usuario u = Usuarios.buscarUsuario(Convert.ToInt32(base.Grilla.SelectedRows[0].Cells["Id"].Value));
                    Usuarios.borrar(u);
                    CargarGrilla();
                }
            }
        }

        public override void editar()
        {
            if (base.Grilla.SelectedRows.Count == 1)
            {
                Usuario u = Usuarios.buscarUsuario(Convert.ToInt32(base.Grilla.SelectedRows[0].Cells[0].Value));
                if (u != null)
                {
                    frmUsuarioActualizar frm = new frmUsuarioActualizar(u);
                    frm.ShowDialog();
                    frm.Dispose();
                }
                CargarGrilla();

            }
        }
    }
}
